#pragma once

#include "DirectInputKeyboard8.h"

namespace Vortex { namespace Wrapper { namespace DInput {

	///<summary>DirectInput8 wrapper</summary>
	public ref class DirectInput8 {
		static DirectInput8^ _instance;
		IDirectInput8W* _handle;

		DirectInput8();

		~DirectInput8();

	public:

		///<summary>Creates input device of the specified type</summary>
		HResult CreateKeyboard([Out] DirectInputKeyboard8^% device);

		///<summary>Instance of DirectInput8</summary>
		static property DirectInput8^ Instance {
			DirectInput8^ get() {
				if (!_instance) {
					_instance = gcnew DirectInput8();
				}
				return _instance;
			}
		}

	};

} } }